HAL DMA2D I/O operation functions

Start DMA2D transfer

HAL1

HAL2

In HAL1, HAL_DMA2D_Start() configures the source, destination, size, and starts the DMA2D transfer.

HAL_DMA2D_Start(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata,
                         uint32_t DstAddress, uint32_t Width,
                         uint32_t Height)

In HAL2, the transfer configuration and start are separated:

  • Configuration is done using layer configuration functions depending on the chosen mode.

  • The actual transfer start is done using HAL_DMA2D_Start(hal_dma2d_handle_t *hdma2d).


Start DMA2D transfer with interrupt

HAL1

HAL2

In HAL1, HAL_DMA2D_Start() configures the source, destination, size, and starts the DMA2D transfer with interrupt enabled.

HAL_DMA2D_Start_IT(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata,
                            uint32_t DstAddress, uint32_t Width,
                            uint32_t Height)

In HAL2, the transfer configuration and start are separated:

  • Configuration is done using layer configuration functions depending on the chosen mode.

  • The actual transfer start is done using HAL_DMA2D_Start_IT(hal_dma2d_handle_t *hdma2d).


Start DMA2D blending operation

HAL1

HAL2

HAL_DMA2D_BlendingStart(DMA2D_HandleTypeDef *hdma2d, uint32_t SrcAddress1,
                                 uint32_t SrcAddress2, uint32_t DstAddress,
                                 uint32_t Width,  uint32_t Height)
HAL_DMA2D_SetConfigBlending(hal_dma2d_handle_t *hdma2d, const hal_dma2d_blending_config_t *p_config) or
HAL_DMA2D_SetConfigBlendingFixFGColor(hal_dma2d_handle_t *hdma2d,
                                          const hal_dma2d_blending_fixed_color_config_t *p_config) or
HAL_DMA2D_SetConfigBlendingFixBGColor(hal_dma2d_handle_t *hdma2d,
                                          const hal_dma2d_blending_fixed_color_config_t *p_config)


HAL_DMA2D_Start(hal_dma2d_handle_t *hdma2d);

Related concept: Other HAL DMA2D changes


Start DMA2D blending operation with interrupt

HAL1

HAL2

HAL_DMA2D_BlendingStart_IT(DMA2D_HandleTypeDef *hdma2d, uint32_t SrcAddress1,
                                    uint32_t SrcAddress2, uint32_t DstAddress,
                                    uint32_t Width, uint32_t Height);
HAL_DMA2D_SetConfigBlending(hal_dma2d_handle_t *hdma2d, const hal_dma2d_blending_config_t *p_config) or
HAL_DMA2D_SetConfigBlendingFixFGColor(hal_dma2d_handle_t *hdma2d,
                                          const hal_dma2d_blending_fixed_color_config_t *p_config) or
HAL_DMA2D_SetConfigBlendingFixBGColor(hal_dma2d_handle_t *hdma2d,
                                          const hal_dma2d_blending_fixed_color_config_t *p_config)

HAL_DMA2D_Start_IT(hal_dma2d_handle_t *hdma2d);

Related concept: Other HAL DMA2D changes


Polls for DMA2D transfer completion

HAL1

HAL2

HAL_DMA2D_PollForTransfer(DMA2D_HandleTypeDef *hdma2d, uint32_t Timeout)
HAL_DMA2D_PollForTransfer(hal_dma2d_handle_t *hdma2d, uint32_t timeout_msec)

Note

In HAL2, to wait for the completion of CLUT loading use HAL_DMA2D_PollForCLUTLoad(hal_dma2d_handle_t *hdma2d, hal_dma2d_input_t input, uint32_t timeout_msec).

Related concept: Other HAL DMA2D changes


Suspends the ongoing DMA2D operation

HAL1

HAL2

HAL_DMA2D_Suspend(DMA2D_HandleTypeDef *hdma2d)
HAL_DMA2D_Suspend(hal_dma2d_handle_t *hdma2d)

Resumes a suspended DMA2D operation

HAL1

HAL2

HAL_DMA2D_Resume(DMA2D_HandleTypeDef *hdma2d)
HAL_DMA2D_Resume(hal_dma2d_handle_t *hdma2d)

Abort the ongoing DMA2D transfer

HAL1

HAL2

HAL_DMA2D_Abort(DMA2D_HandleTypeDef *hdma2d)
HAL_DMA2D_Abort(hal_dma2d_handle_t *hdma2d)

Suspends the ongoing DMA2D CLUT loading

HAL1

HAL2

HAL_DMA2D_CLUTLoading_Suspend(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
HAL_DMA2D_SuspendCLUTLoad(hal_dma2d_handle_t *hdma2d, hal_dma2d_input_t input)

Resumes the DMA2D suspended CLUT loading

HAL1

HAL2

HAL_DMA2D_CLUTLoading_Resume(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
HAL_DMA2D_ResumeCLUTLoad(hal_dma2d_handle_t *hdma2d, hal_dma2d_input_t input)

Aborts the ongoing DMA2D CLUT loading

HAL1

HAL2

HAL_DMA2D_CLUTLoading_Abort(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
HAL_DMA2D_AbortCLUTLoad(hal_dma2d_handle_t *hdma2d, hal_dma2d_input_t input)